From 6d0b0cb99bbe8bf67be7d7450c67095989d8aec5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?utf8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Mon, 4 Sep 2017 14:42:11 +0000 Subject: [PATCH] GDK W32: Plug a resource leak Ensure that surfaces allocated in the impl are destroyed in finalize() https://bugzilla.gnome.org/show_bug.cgi?id=787089 --- gdk/win32/gdkwindow-win32.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index bb92f0e5d9..ea510e4bd4 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -256,6 +256,21 @@ gdk_window_impl_win32_finalize (GObject *object) g_free (window_impl->decorations); + if (window_impl->cache_surface) + { + cairo_surface_destroy (window_impl->cache_surface); + window_impl->cache_surface = NULL; + } + + if (window_impl->cairo_surface) + { + cairo_surface_destroy (window_impl->cairo_surface); + window_impl->cairo_surface = NULL; + } + + g_assert (window_impl->transient_owner == NULL); + g_assert (window_impl->transient_children == NULL); + G_OBJECT_CLASS (parent_class)->finalize (object); } -- 2.30.2